Yo lo haría de la siguiente manera:
Compás electrónico conectado al Arduino, sensor de ángulo de timón en plan sencillo con encoder relativo.
El actuador sobre el timón puede ser de cualquier tipo, motor paso a paso o motor CC con alimentación directa, entodos los casos lineal, si ya tenemos el actuador Raymarine o similar pues ese.
Todo esto es elemental, donde veo el nudo Gordiano es en el control del rumbo, evitar la inestabilidad del sistema de control, esto es giros constantes o sobregiros, para esto podemos usar un algoritmo PID implementado en el programa de modo que los parámetros de configuración no serían más que los coeficientes del PID.
Como soy poco amigo de los PID sería interesante programar un control adaptativo, predictivo, experto, se trata de un control con una configuración inicial (experto), y luego la parte predictiva y adaptativa se encarga del autoaprendizaje y calibración autónoma del sistema. Este tipo de control, para procesos complejos reduce las variables de control a una sola y funciona de forma espectacular.
Esto supondría un curro pero el funcionamiento podría ser muy bueno.
Todo es ponerse, bueno, tener tiempo para ponerse.

