I'd go with a speed controller, they are cheap these days and a far simpler solution than making your own. You'd connect the ESC to a receiver which talks to the transmitter so it's all nice and simple and no custom stuff needed.

Most modern motor controllers work by rapidly switching the motor on and off. If you have a 12v supply and you turn it on for 1 second then off for 2 and repeat it'll give the same speed as running it at 4V. Now replace seconds with a much much faster time scale. It's a nice and efficient system with minimal losses and can handle high current inexpensively.