How should I control the speed of a motor for an ROV?

I want to control DC (brushed) motor speed for an underwater ROV through an Arduino MEGA.
Should I use PWM functionality and use a transistor to handle large voltages or a brushed ESC?


So the motor will run in only one direction (no reverse)?

An ESC would probably use the Servo library, not PWM (analogWrite).