This question also has an answer here (in German):
Was genau ist ein Strom (Gewässer)?
What is the difference between Fluss and Strom, which both translate to river?
The distinction is quite easy. In German, you usually say Fluss to any kind of river, so that’d be a proper translation. A small river is called a Bach, which in English is called a “stream”, mind you.
A Strom (“main stem”, “major river” and others in English; literally “current” or “stream”) however is a larger body of water, usually the main stream that leads to the open sea (unlike its tributaries).
Rivers like the Rhine, Ganges and Nile would be called a Strom in German, but it’s probably a hydrology term rather than a colloquial one (Wikipedia likes to differ). That being said, there are some criteria to determine when a Fluss is called a Strom (like the amount of water it conveys or it having an estuary).
While there is a pretty good agreement on what can be called Fluss and what must be called Bach (the latter is typically only valid if you can hop across it), there is no clear-cut distinction between a Fluss and a Strom.
Every larger body of flowing water can be called a Fluss (but not a Bach) but many would raise an eyebrow if you called them Strom. Nowadays — and especially for me — the distinction is typically only size: Somewhere between the size of the Isar in Munich (a Fluss) and the Inn and Danube in Passau (Strom) is where I would place the absolute lower boundary.
There is also, traditionally, the distinction that a Strom had to have some cultural significance for the people living around it, much like the Rhine has for most of western Germany. However, I personally find that argument a bad and neglectable one.