This would add a huge delay to the script, but something like this is probably the only option (assuming you prefer powershell)
Modified wrapper I use for powershell scripts to illustrate error codes in this case:
If you want to return error codes reliably (at least in PS v2) you have to use the function as illustrated in:
You could get your Package to "stop" if the error code returned isn't 0.
My big issue with this, however, is now you have a bunch of failed deployments. You're left to either write the computers that don't have a program installed to a UNC path like \\pdqServer\PDQ\adobeReaderXNotInstalled.txt and then using another script to update your list of computers...
Really the only solution (that's maintainable) would be to wait for conditional steps or massage a list from PDQ Inventory.
I might be wrong in my understanding though.