We study the Gross-Pitaevskii equation with a slowly varying smooth potential, V (x) = W (hx). We show that up to time log(1/h)/h and errors of size h in H, the solution is a soliton evolving according to the classical dynamics of a natural effective Hamiltonian, (ξ + sech ∗ V (x))/2. This provides an improvement (h→ h) compared to previous works, and is strikingly confirmed by numerical simula...