One stop needs to be in the range of another stop.
The way I play now, is to make sure that this only happens where I want the cims to change lines (where I make terminals). Works great, and my cims choose sensible routes to their destination. Unfortunately, this means that I can only make so many lines before it is no longer possible to make new stops that don't lay within another stop's range where I don't want it, so it really limits the game.
This is exactly the reason why I made this suggestion in the requests and suggestions-thread:
"I have a suggestion for a programmably simple, but efficient method to prevent CiMs from switching lines back and forth like crazy. Make us an option to make each individual stop open or closed for line changes. A simple yes / no option to select when we enter each stop. When yes is chosen (probably would be best to have this as default, for those who don't want to work in detail like this), the stops work just like now. When you select no, the stop will not be "covered" by other stops nearby, and cims will not see this stop while on an other line. With this option, we can manually choose where the cims will switch line, and we can actually make working terminals without having to make the whole network around it so that no stops are covered by eachother. I really hope this is doable, and something we could see in a patch in near future!"
With this feature, used properly, we could make beautiful networks where cims (mostly) behave like human beings, taking logical routes to their destinations. Oh, how great it would be!