Anish's reply was just a link and so has been rejected.
You cannot find the definitive most recently used execution date. You have to gather execution data over a 13 month (or longer, though 13 months usually is sufficient) period. ST03N and STAT do not pick up all data. While an entry in there means the program has been run, lack of an entry does not mean it hasn't been run. SAPScript print programs for example won't appear.
The correct solution, supplied by SAP, is to use UPL. This is a cut down version of SCOV that runs in production. It gathers usage information, which is then extracted by solution manager into solman cubes, which, in conjunction with the Custom Code Management Cockpit (CCMC) on solman, can be queried to discover what isn't being used.
Once you've got a list, you then need to develop a procedure for handling the objects you want to delete. You must do this in a safe way, so that if you make a mistake, you can bring a deleted object back.