Pelo que tu descreveu, isso tem muito mais cara de problema na leitura de posição do que no motor. Quando ele gira até o fim e continua forçando, normalmente é porque não está recebendo sinal nenhum do encoder, então o sistema “não sabe” que já chegou no limite.
O mais provável é o encoder óptico mesmo. Pode ser disco trincado ou solto no eixo, sujeira no disco, sensor desalinhado, LED infravermelho queimado, trilha rompida na placa ou até fio do encoder rompido. Se não chega pulso para a placa, ele fica tentando girar sem parar.
Vale testar o LED IR se está ligando e já confere se o emissor e o receptor estão bem alinhados, porque se estiver torto não vai ler direito.
Dá uma olhada na posição do disco do encoder também. Ele não fica exatamente centralizado no eixo, ficar um pouco mais para o lado do conector de 5 pinos.