Steyn claimed 6-72 as South Africa won by an innings and 100 runs with two days to spare to wrap up a 2-1 series win.
West Indies, who needed 417 to make South Africa bat again, were dismissed for 317 with Marlon Samuels on 105 as their top scorer.
West Indies won the first Test by 128 runs in Port Elizabeth.
South Africa levelled the series with a seven-wicket win in Cape Town.