I had a 0.2 acre pond dug on our property a year ago. I read all about fish habitat in advance so I saved up materials to be used during the previous year. I ended up adding 3 habitats to the bottom of my pond following the dig and before it filled with water.
Brush pile: I built a wooden frame to hold it in place and weighed it down with concrete blocks and large boulders. Then I ran branches through it from every direction until I couldn't find spaces for more. Everything had to fit tightly so it wouldn't float before becoming waterlogged. The structure is about 6 feet tall and sticks out of the water a couple of feet so insects will land on the branches and some fall in. It appears to be used by everything in the pond except possibly the channel catfish(LM bass, bluegills, painted turtles, and minnows).
Rock Substrate: I didn't know exactly what the water depth would be so I placed a rock substrate (approx. 10 ft. x 15 ft. and one rock layer deep) so it would lie in water from about 1-4 feet deep. The rock sizes and shapes were extremely variable on purpose, from gravel size to 14" softball size. This substrate is mostly for aquatic insect habitat and for very young fish to hide amongst. To date, it appears that fish have moved some of the rocks around in order to make a circular depression for spawning purposes.
Stack of pallets: We had our house vinyl sided so I kept the very large, very strong pallets. I set them on concrete blocks, stacked 5 deep, and weighted so they wouldn't float away. They are in water about 4-5 feet deep and the top is below the surface 1-3 feet, depending on the pond's water level. I have seen bluegills and bass make use of it. I saw a bullfrog tadpole sitting on one of the boards (3rd pallet down) too.
I don't know where the channel catfish hide because I only see them when I throw fish feed into the pond. However, for spawning sites, short lengths of clay drainage tile, 5-gallon pails, and old milk jugs set on their sides are recommended. Hollow logs too if you have them.
For insects and minnows, you also want summerged as well as emergent plants to attach to or hide amongst. Your pond area should not have more than 20% coverage with vegetation after a few years.
Basicly, any substrate will be beneficial for something but try to keep it natural looking if possible, provide crevices and cover, and don't place it in water that is too deep. Different fish species have different needs so know what fish you want to raise and read about them before adding your structures and substrate. Once in place, it is hard to move or remove.