If I understand the issue correctly, if the underlying values that determine the action exist then the stage should be processed and the item routed as defined.
If the underlying values are blank (all? some? ) then the stage should be skipped.

The approach that I would take would be to first look at the delivered view used in the current workflow to determine if it already has the fields I needed. If not, then I would create a view and then use the view as additional criteria for the path(s) in the stage. If the criteria fail then the path(s) and thus the stage would be skipped.

I don't believe what you are asking for is possible as delivered. Only time I have seen the skipped status is:
1. You have setup escalations to continue on to the next step if the approver hasn't approved after a certain number of hours/days.
2. You don't have the self-approval checkbox checked for the step and the individual requesting the item is also the approver.

If there are no approvers returned it goes to an error step and gets routed to the workflow administrator. You may be able to take advantage of #2 if you want the step to be skipped you would have to return the requestor as the approver in your userlist and have the self-approval checkbox unchecked for that step.

I don't believe what you are asking for is possible as delivered. Only time I have seen the skipped status is:
1. You have setup escalations to continue on to the next step if the approver hasn't approved after a certain number of hours/days.
2. You don't have the self-approval checkbox checked for the step and the individual requesting the item is also the approver.

If there are no approvers returned it goes to an error step and gets routed to the workflow administrator. You may be able to take advantage of #2 if you want the step to be skipped you would have to return the requestor as the approver in your userlist and have the self-approval checkbox unchecked for that step.