What makes Stealth Rock insulting is that they wanted to make an Anti-Flier Spikes move, ok, fair. But there are a bajillion better ways to go about Instead they made Rock weakness an even bigger issue than it is, and there's so many W4's to Rock running around, and just about all those typings have so many defensive issues already, it comes to a "What were they thinking?" The fact that every single Rock, Ground and Steel can learn it (as well as various miscellaneous things, mostly "Fairy" type Pokemon) while Spikes, which is clearly far inferior, makes it much more insulting, and pretty much kills the point of Spikes, which was a unique ability.
Toxic Spikes, the other Spikes like move added into the metagame, mind you was cool; it was handled appropriately, none game breaking effect, even has a technical downside (If you lay Toxic Spikes, anything that can be hit with Poison is also immune to Sleep and such, so you have to actually think "Do I want I to use this?") Furthermore, multiple uses for maximum benefit gives Rapid Spin a use against them, and stuff like "If a poison type swaps in on Toxic Spikes, the spikes disappear" factor kicks in. It was different, but ran off the same concept, and was balanced.
Stealth Rock? Here are just a few simple ways to de-stupid the attack, note that only ONE of these would have been enough, not saying "APPLY THEM ALL":
-Give it to about the same number of things as Spikes; this gives a few Pokemon a niche, and makes it no longer a GIVEN in a Metagame, just quirky below the belt trick.
-Make it like "Stealth Shock", as in, an Electric-type variant. Serves the same purpose of "Anti-Flier" move, HOWEVER, is far more balanced. First off, Ground types scoff it off entirely (Stealth Rock, the best you get is R4ing it via Lucario or something), as does Volt Absorb and Motor Drive users, so there's a non-negligible amount of COUNTERS to the thing (and if you gave it Toxic Spikes logic, these counters would destroy it entirely.) There are only 2 things that have W4's to it IIRC (Gyarados and Mantine), while still a decent number of things with standard weakness, so its really "Screws over 2 Pokemon" instead of "Screws over about 20 Pokemon, several of which who would be really cool if not for it!" Heck, back to Motor Drive/Volt Absorb thing, Stealth Shock has a noteworthy downside in that while it murders 2 specific Pokemon...it also accidentally makes Electrivire completely evil, and heals things like Jolteon, so you end up second guessing the move just in case they have one of those guys.
-Change Stealth Rock to 6.25% instead of 12.5%; at least now, the W4 doesn't say "lol half HP", for all that the weakness is still annoying
-Alternatively, change the amount of damage being weak does. If they did it like 12.5% normal, 18.75% if weak, 25% if W4, that'd be alright, if still annoying cause W4 to Rocks are already boned as is, at least its not totally screwing them over (50% damage is way too stupid.)
-Or just make it not care about W4's, just say "If weak, take x amount of damage!" rather than "Take damage equal to your Rock resistance multiplier!" IOWs, a Charizard would take the same damage from Stealth Rock as Pidgeot.
-Make it just like Spikes only have a different check for "Hit vs. Not Hit", no clue what that'd be, but at least require multiple turns to spread out, and makes Rapid Spinning the move serve a purpose.
-Have Stealth Rock be a one shot thing only. By which I mean you use Stealth Rock, it works ONLY on the next thing that pops out. This makes the opponent actually think about who they want to swap in next, specifically, but doesn't screw all those W4's to Fliers out, just limits their use temporarily. This actually adds to strategy, not just makes it a mindless "Throw Stealth Rock out, oh look all your Flying/Fire/Ice/Bug types are boned for rest of the fight lul."