This looks like a QGIS plug in that does routing, but it would be a manual / repetitive process:
Possibly easy to fork the code.
Unless you want to write a nice A* algorithm yourself in whatever scripting language QGIS employs you should check out the existing applications / frameworks that can do this for you.
Alternatively, if you do want to 'get right in there' and have a decent level of scripting knowledge, then you need to look at A* algorithms. There are a few references here and there, but this play-list explains it quite well:
Note that if you're using OSM, you will need to have the raw OSM format (ie. ways and nodes), and not the data that has been processed to make it easier to symbolize / render. Reason being, processed data is not route-able. When processing the data, we sacrifice that feature for rendering speed. (Osmosis does, I believe, preserve the ways and nodes in a 'staging' fashion when importing to PostGIS.) That being said, each routing system is going to require a different input format.
On top of that, you're probably not going to get very far wanting to do this 'inside' of QGIS as most of these routing packages are standalone at best. I'd recommend that you look at the C# / Java implementations unless you're feeling brave or have rudimentary c++ knowledge.
As far as retaining your routing results as a separate layer, if you're still with me on this, and you've successfully 'routed' your 'stop' points with one of the suggested packages, I have a feeling that you will know how to do that.
As a final note, if you're using your own road data, it better be topologically correct, otherwise you add a logarithmic level complexity to the search algorithm (speaking from painful personal experience).