Fix: free_step was being called if (step == NULL)

Even though free_step should manage a NULL argument this call is
completely pointless. Should this change in the future, this would be
a major segfault.