An old question, but one that I'm working on right now. As the person in the answer suggested, I've made an RKF45 ODE integrator and am trying to implement an adaptive step-size stepper.
The idea behind the stepper is that you calculate the fourth order step and the fifth order step. You compare the two of them to see what the error looks like with the fifth order taken as "correct." You will then check to see how the error (in my case, the maximum error from a vector of protein concentrations) compares to the desired error. If it is greater than the desired error, you reduce the step size and calculate the 4th and 5th order steps again, repeating the process until the error is smaller than the desired value.
Once the error is smaller than the desired value, or if it is smaller than the desired value, you can take a time step and advance all your dependent variables. Earlier literature that I read used the 4th order calculation to take the step, but later literature suggested just using the 5th order since you've already gone through the trouble of calculating it.
If your error is much smaller than the desired value, an adaptive step size algorithm should increase the step size to try and speed up the overall calculation. In Numerical Recipes, they suggest a stepper like this :
h0 = h1 * (DesiredError/CalculatedError)^(.2)
where h1 is the step size you tried to take and h0 is the theoretically appropriate step size.