I want to add the lux meter to my application. My controller works with 3.3V and ADC max reading voltage is 1.2Vref. I tried with LDR but I'm not able to get accurate values and the values also not useful for calibrating.
Your question, "Which one is better" does have an answer, but first we need to look at the rest of your statements.
I'm not able to get accurate values and the values also not useful for calibrating.
You should realize that for many years (more than 50) LDRs, typically CdS, have been used in light meters, and are still used today, although their use has declined radically. So your inability to produce a useful result says everything about your skill level and nothing about the utility of LDRs.
With that said, CdS has an intrinsic advantage over silicon - its color response is close to that of the human eye. Silicon photodiodes typically have a lot of response in the IR, so they need a pretty good filter to shape their response curve to match what we see.
On the other hand, silicon tends to be easier to use, and more sensitive as well.
As for alternatives, sure. Bolometers are extremely sensitive. But if you can't get good results with an LDR you will never, ever make a bolometer work.
You need to do more research in how to amplify an LDR's output.
To answer your question, photodiodes are easier to interface and are faster. You can even make a light meter using just a PD and a resistor, which will give extremely linear results. This is not necessarily a good thing, since "normal" light levels will typically cover at least a 1000:1 range, which complicates the issue significantly.