are you sure it is your starter and not something like a starter relay?...b.c when relays go bad they are sometimes sensitive to temprature,and knocking around and all..i had a a/c clutch relay do me that way....it could also be your ignition switch...or that ignition switch circuit....it might not be sending enought power to the starter solenoid to engage it...and also a weak battery or loose battery connections will cause that condition also...i have seen it a million times...but yea...i would start with the batter connections make sure they are tight and not corroded. then start checking wiriing and stuff...but i hop this helps.
also i have seen that condition before on aftermarket starters,sooo if you are runnin cheap stuff...maybe you want to try a GM Starter...
but like i said hope it helps