Old English -stoppian (in forstoppian "to stop up, stifle"), a general West Germanic word (cf. West Frisian stopje, Middle Low German stoppen, Old High German stopfon, German stopfen "to plug, stop up," Old Low Frankish (be)stuppon "to stop (the ears)"), but held by many sources to be a borrowing from Vulgar Latin *stuppare "to stop or stuff with tow or oakum" (cf. Italian stoppare, French étouper "to stop with tow"), from Latin stuppa "coarse part of flax, tow." Plugs made of tow were used from ancient times in Rhine valley. Barnhart, at least, proposes the whole Germanic group rather might be native, from a base *stoppon.
Sense of "bring or come to a halt" (mid-15c.) is from notion of preventing a flow by blocking a hole, and the word's development in this sense is unique to English, though it since has been widely adopted in other languages; perhaps influenced by Latin stupere "be stunned, be stupefied." Stop-and-go (adj.) is from 1926, originally a reference to traffic signals.