Typically there are two reasons that campaigns get stuck. The most common scenario is that the previous step was not completed. If you have a cadence of Task > Email > Task > Email etc. Make sure you are always completing that task in order to trigger the next email to be sent.
The easiest way to check if this is the case is to search for your contact on the People tab and see if they have an open or overdue task associated with them. Another scenario might be that the email actually Failed or Bounced. You can find this the same way by opening their contact information and looking at the activity history and clicking on the most recent email which will give any errors that might have occurred on sending.