Всё зависит от того что вы хотите получить и что такое "криво выглядит".
Можно, например, делать интерполяцию, тогда при подходе к 3 метрам расстояния дополнительный угол плавно уберётся:
angle = Mathf.LerpAngle(angle, angle - additionalAngle, direction.magnitude - 3);
А можно не давать целится ближе 3 метров:
if (direction.magnitude < 3)
targetPos = ownerPos + direction.normalized * 3;
PS
На вопрос можно было бы получить ответ быстрее если прикладывать больше контекста:
- больше кода - всё что относится к повороту
- как настроены объекты
- видео или гифку с проблемой
- видео как хотелось бы чтобы оно работало