Ron the Polymath has a framework:
PowerShell job steps offer a lot of advantages, but when things don’t work as expected, it can frustrating to understand why. Things like when a non-zero exit code reports the step as successful. Some important points I found with PowerShell steps (especially the first item):
Read on for those interesting points, for a block of Powershell code you can use to track errors, and a SQL Agent job template to boot.