Ran across this Pokemon-sprite specific guide:
www.dragonflycave.com
Some general personalized advice:
1. I'd recommend just learning to draw in general. You seem to have an issue conceptualizing 3d objects in your mind. As a result, your sprite looks flat, as though a similar object (let's say a snake) was looking directly at you and you just shoved a pane of glass on it and forced it to be flat. As a result, I'd say try to practice imaging what an object looks like in 3d at different angles in your mind. It may not seem obvious, but becoming a good drawer will lay the groundwork for you to become good at spriting. Try to draw objects in your room or at school if you're bored (if you're in school) and pay attention to how the light reflects off surfaces and what parts of the surface are darker than others. And then, try to figure out why certain parts of surfaces are darker or lighter.
2. Dark outlines. Dark outlines make sprites look so much better in general, with the exception of some tilesets. Try using a one-pixel black outline as much as you can, and then play with other darker colors to give the image more depth.
3. Practice, practice, practice! The more you do it, the better you get. After you finish a piece of art, don't touch it for a bit, do something else, and then come back to it. Also, save your old crappy versions for comparison so you can see how you improve. This also can help you see what still looks wrong when you look at two versions of the same image.
4. It's a good idea to use the official sprites of what style you're trying to imitate as reference. You don't want to copy them exactly, but you want to imitate the style (i.e. How does the art style do hair? What colors does it use? How does it position its lighting?)
Anyway, hope this helps! I am also someone who is in the thick of getting better at spriting.