Diatoms need silcate to grow, so the answer is to control the silicates in your tank. Most silicates enter the tank via new water that is not filtered for silicates, therefore your water changes are probably only feeding the problem. New tanks, even when setup right, will tend to have some diatom growth for a period of time after setup. This natural cycle will tend to die down on its own.
Using RO water for your makeup water is often not enough. In my area, I had to add a DI in order to get my silcate levels and diatoms under control. I personally use the Kent Hi-S DI cartridge which does a great job of removing silicates.
Definitely buy a silicate test kit and check your tank water and any makeup water source you are using. Silicates should basically be at undetectable levels or you will probably have excess diatom growth.
One way to reduce the silicate levels and diatom growth in your tank is to use a silicate absorbing material. Most phosphate removers will remove silicates once all the phosphate has been removed. Phosguard is one such product that I have used, but there are others. These products can sometimes shift pH and some softies like Sarcs will tend to closeup when they are being used in large quantity, but this does not seem to lead to long term problems.
--- Ken