Es gibt noch eine recht einfache Möglichkeit, die oft einfacher zu realisieren ist:

Das Ersatzschaltbild eines DC-Motors ist eine Spannungsquelle (die Generatorspannung, bzw. EMK) und der Wicklungswiderstand in Reihe. Die Indiktivität lassen wir im DC-Betrieb außer ach, bzw. sie ist ja schon im der EMK berücksichtigt.

Wenn die Belastung steigt, fällt mehr Spannung am Innenwiderstand ab (weil ja der Strom durch den Widerstand steigt), und damit bleibt weniger Spannung für die Drehzahl, damit wird der Motor langsamer.

Man kann nun die Spannung um genau den Betrag erhöhen, der am Innenwiderstand abfällt, und damit die Motordrehzahl konstant halten.

Prinzip: Die Schienenspannung erstmal um z.B. 10-20% auf runterregeln (man braucht ja eine Regelreserve) und dann mit zunehmender Belastung (spannungsabfall am Shunt) hochregeln. So ist der Motor im Leerlauf so langsam wie sonst unter Vollast.

Das kann man z.B. recht leicht mit einem ATtiny15 + MOSFET machen oder natürlich auch mit einem analogen PWM-Steller, z.B. auf Basis eines NE555 Timers).

Ist vor allem recht einfach.. Man muss nur die richtige Verstärkung (Kp) einstellen, also den Faktor um den die Ausgansspannung (PWM) steigt, wenn am Shunt mehr Spannung abfällt.. (theoretische Minimalbeschaltung:
5V-Spannungsregler für den Controller, Shuntwiderstand, Controller und MOSFET., ggf. noch ein Trimmpoti am 2. AD-Wandler, damit man das abgleichen kann. That's it.

Die oben beschriebene Methode der EMK-Messung zwar genauer, aber auch aufwändiger. Für den Zweck sollte es auch so reichen.

Sigo