how to use complex textures

I have created a lot of materials so far and one common problem that I face is that it always gets stretched on my mesh. When I use texture coordinate, the material gets tiled, and no matter what variation I bring in my texture(macro variation), the texture seems to repeat itself. What should I do to avoid this repeating pattern so that everything looks good?
Yesterday, I was trying out your mesh paint tool and I found that I could paint textures. Now suppose I want variation or differential sizes for my base texture for painting.

For eg in this material the red circle denotes the texture. Now I bring variation using parts circled blue. This is a starter content material. In this case I want to use the basecolour of this material as a single compact texture for another material( for painting meshes. How should I do this?
One more question, how do I create normal for my custom textures?