やむ has a few meanings (http://dictionary.goo.ne.jp/jn/223257/meaning/m0u/
1. Something stopped naturally
e.g. 雪がやんだ 雨がやんだ
2. Something that has been going on for a while (in time) stops
e.g. 騒動がやんだ 騒音がやんだ
3. Feelings or sickness stop or cease
e.g. 恋がやんだ 痛みがやまない
The above things cannot be stopped by exerting external forces/factors. We must wait for them to stop. In some sense you can stop a noise (e.g. by telling the noise maker to stop the noise) but in that case you cannot use やむ. When you use やむ it means you cannot identify the noise maker or cannot request the noise maker to stop (e.g. the refrigerator is the noise source, and you cannot ask the fridge to stop making noises)
On the other hand, とまる also has several meanings (http://dictionary.goo.ne.jp/jn/160171/meaning/m...
1. Something that has been moving is stopped
2. Something that has been going on (physically) stops/ends
The clock stopped because the battery died (external factor). The road ends here because the town planner decided that it should end here.
I'm not sure why やむ is used in the phrase ～ なければやまない because I am not a native speaker, but I guess it is related to the second meaning of やむ