Short answer is that it isn't always white. We do see in episodes I, II and III that other colors were used to better blend with other environments.
However, white was the primary color as listed at Wookieepedia.
"having acquired its color from the austere tastes of its Kaminoan creators"
Wookieepedia - Stormtrooper armor
Additionally on the Stormtrooper Wookieepedia site, the White armor signified unit solidarity and became a distinguishing signature characteristic. As it was illegal for anyone other than a Stormtrooper to own the white armor it became indelibly linked as the armed face of the Empire.
Wookieepedia Stormtrooper
However, I would suspect, while not specifically stated, it is likely that white as a color would also be the most likely to resist blaster/laser fire by being the most reflective. Hence, could be a good default color choice particular in an interior ship environment.
In episodes IV, V & VI we see pretty much just white. We see them on ships, a very hot desert planet (again white might provide a cooler alternative) and snow. Definitely what could be considered "white" advantage situations. However, outside those situations any additional possible benefit of reflective capability would be offset by the non-camoflauge capability. Too, whether it violated the "austere tastes of its Kaminoan creators" if that lack of "blending in" was getting Stormtroopers killed, even the Empire would need to rethink things :-)
Again per Wookieepedia:
"Stormtroopers sometimes wore camouflage armor to help them blend in with different environments. The Stormtrooper corps instituted this reform after the embarrassing defeat at the Battle of Endor."
Hence, for episodes IV, V, & VI, we might consider "white only" version as an anomaly. After getting clobbered in VI, we can see that restriction was discarded in favor of the most optimum color armor for the job.