The question mark ? is the conditional ternary operator.
condition ? result1 : result2
If condition is true, the entire expression evaluates to result1, and otherwise to result2.
int dir = (steps > 0)? HIGH:LOW;
This is the same as
if(steps>0)
{dir = HIGH;}
else
{ dir = LOW);