First of all you need to have sofware usage metering data - corresponding feature should be enabled & configured in SCCM, probably some usage statistics can be gathered on a client side by enabling some logging/metering built into client OS (not sure about latter at the moment).
Then having software usage metering data you may establish threshold suitable for you (e.g. software is unused if it was never run at all, newer run for certain period of time etc.) and select and run uninstall of this sofware by running script against all your machines/users.
This is just an outline of how it possibly could be done.
Further reading (describe exactly asking about with use of Orchestrator Runbook Automation and ability to opt out from assigned uninstall for user):
1) Software Metering Deep Dive and Automation Part 1: Use It Or Lose It - The Basics
2) Software Metering Deep Dive and Automation Part 2: Use It Or Lose It - The Collections
3) Software Metering Deep Dive and Automation Part 3: Use It Or Lose It - The Orchestrator Runbook Automation
By the way there is a little pitfall here: software metering just track runs of app & probably time it has been running for, but this in not always equals to real application usage (it may be simple configured to autostart but ignored by user)