Buenas tardes, ya he solucionado el problema. 
Los errores de calculo no se producían por quaternion.lerp, de tanto probar cosas estaba hecho un lio. El problema lo causaba un lerp que metí en transform.rotate.
Problema:
Código:
Rotacion = mathf.lerp (Rotacion, input.getaxis ("Horizontal"), 10 * time.deltatime);
transform.rotate (0, Rotacion, 0);
Si usamos esas dos líneas para calcular la rotación en el eje Y por medio de una interpolación, según baje o suba el framerate la rotación se hará más lenta o más rápida, a pesar de estar calculando previamente con un lerp que va multiplicado por time.deltatime.
Solución:
Código:
Rotacion = mathf.lerp (Rotacion, input.getaxis ("Horizontal"), 10 * time.deltatime);
transform.rotate (0, Rotacion * 10 * time.deltatime, 0);
De este modo la rotación siempre será a la misma velocidad sin importar el framerate.
Un saludo.