The implicit scheme from your question is second order of accuracy in space and only first order of accuracy in time; this fact follows from the elementary derivation using the Taylor series expansion. I would suggest replacing your algorithm by the Crank-Nicolson scheme which is second order accurate in time and in space.
Just write the Taylor expansion of each term without forgetting the truncation error order term. You will see that the first term has a truncation error of order O(dt), first order in time, the second term has a truncation error O(dx) also first order but in space, however the truncation order of the last term is O(dx^2) , second order in space. Now put everything together, you will end up with a scheme that is first order in time and second order in space.