так что перемещение между двумя точками мне не подходит
Вобще глупости. Всегда будет точка откуда идти и куда нужно прийти.
Тут либо в Update код крутить
transform.position = Vector3.Lerp(transform.position, targetPosition, .1f);
либо высчитывать delta-смещения за кадр
float maxSpeed = 2f;
float maxDelta = maxSpeed * Time.deltaTime;
Vector3 delta = transform.position - targetPosition;
if (delta > maxDelta)
{
delta = delta.normalized * maxDelta.magnitude;
}
transform.position += delta;
P.S. Код не проверял, но идея такая