In games like Minecraft the textures such as grass when lined up side-by-side it looks like one big perfect texture. When I make a texture it's never even and you can see the different blocks. How do the textures kinda tessellate with each other?
What you're looking for is something called "seamless" textures.
Here are some tutorials for popular image editing programs:
The reason for this effect is that the left side of the texture meats up with the right side of the texture perfectly. And so do the top and bottom.
In most textures there is a pattern, shape, or gradient that makes them interesting to look at. When you place another copy of the tile next to it, you will have pixels from the beginning of the texture directly next to pixels from the end of the previous instance. The problem occurs when those pixels do not line up in a logical way, and shapes/patterns are cut short. The solution is to make sure that both edges of the texture can meet in a logical way.
To create this effect it is necessary to design the texture properly. For simple textures (like grass or dirt), one can simply cut the image down the center, swap the halves (now the pixels from the center, which line up, are on at the edges) then smooth out the new center line. Then repeat along the other axis. Note that in a simple texture any bold area or pattern will be very obvious when you look at many of them tiled, which is generally an undesirable effect.
For complex textures, you will need to put more work into planning to make sure that edges meet up correctly. For instance, a pattern of circles must be designed such that any circle that meets the edge has its remainder on the opposite side of the texture, so that it will look whole when another instance is tiled next to it.