To mark an individual step as completed via the API, you need to send a PUT to the API that updates the steps "completed_at" timestamp field. Here is an example of the XML needed to update a step....
<?xml version="1.0" encoding="utf-8"?>
<job>
<steps type="array">
<step>
<id readonly="readonly">STEP ID HERE</id>
<name>Step Name</name>
<completed_at type="datetime">2013-10-01T16:30:00+13:00</completed_at>
</step>
</steps>
</job>