PWM 2Khz con Timer1 en modo CTC, no lo consigo

Eso es bastante sencillo.

Primero que nada hay que tener presente que el parámetro a pasar a la librería es el período (o sea, la inversa de la frecuencia) en useg.

Luego es cuestión de leer el valor del potenciómetro y con una simple cuenta o usando la función map(), calcular el valor del período para el valor leído y pasarlo a la librería.

Por ejemplo, usando map() se podría hacer algo así

int pote = analogRead(PINPOTE);
unsigned long periodo = map(0, 0, 1023, 500000, 250);

Eso resultaría en una frecuencia del timer de 2 Hz (periodo = 500000 useg) para una lectura 0 hasta 4 KHz (periodo = 250 useg) para una lectura de 1023.

Recuerda que tu salida será 1 Hz hasta 2 KHz (porque resulta la mitad de la frecuencia del timer)

ATENCIÓN: hay un error, ver corrección en post #8

Saludos