Below are the best ways I've found to keep water clean for different ages of chickens.
Baby chicks < 1 week old
Use one or two plastic peanut butter jar lids with marbles in them. When chicks are this young, have all the shavings covered over with paper towels. Put the water containers in the middle of the floor for easy access by multiple chicks at once since at first they need to drink very frequently and also aren't that great at mobility yet.
Older chicks
I spread just 1 or 2 paper towels over the shavings in one corner of the brooder, and put the water container in the very corner, where it is braced close to the wall & less likely to get tipped over. I progress between the following water containers as the chicks get larger:
1. Empty can that sliced black olives came in.
2. Empty can that mushrooms came in.
3. A chick or pigeon waterer (The plastic kind with a red drinking base and white water holder on top) placed on top of an unopened can of mushrooms (to give height and stability).
4. A chick or pigeon waterer on top of an unopened can of cream of [anything] soup (The can is just the right size to fit in the circle indent on the bottom of the waterer).
Adult chickens
The top edge of the water container should be just a bit higher than the chickens' backs. If there is a short chicken in the bunch, I push a pile of sawdust up next to the bowl for standing on, or put a small piece of 2"x4" wood on the floor there. Then I use one of the following:
A. I put a hard-to-tip bowl on a very short stool or piece of tree stump that doesn't leave room for the chickens to stand on it.
or
B. For a holder, I screw the wire top frame from a lampshade onto a stack of blocks and bend the wire circle into "waves" that hold the water container and keep it from tipping. I put a stainless steel bowl in the middle.
Picture: