You can use a synchronized int counter, for each of steps you've completed, increase it by one. And every time you complete a step, call a method to see if the task is complete and the next task can be started, psudo code:
public synchroized boolean executeNext() {
completedCount++;
if(completedCount == TOTAL_STEPS) {
//starts the next task here
return true;
}
return false;
}