I am performing k-mean clustering on a demographic data-set. I have taken k $= 3$ and each time I run this clustering process in a software, I get different set of clusters. Now, I am not sure which result is to be considered as final. I understand why each time it produces different clusters but how do I figure out which cluster is the most appropriate one? Is this a subjective choice?
You can use the clustering that minimizes the sum of variances within the clusters.
This is also used when determining the optimal $k$, in a tradeoff against $k$, since increasing $k$ will reduce the variance - but of course you can just as easily compare different clusterings with the same $k$. The $k$ term drops out, and you are essentially left with the within-cluster variance.
Alternatively, you can look at the silhouettes, which evaluates the separation of clusters. This is also commonly used to determine $k$ but can certainly be used to compare different clusterings with the same $k$.
I would try with other k values to see if the clustering results are significantly different or not. In addition, there are some centroid initialization algorithms that can eliminate the random factor, which would help you stabilize the results. For example, see this.
Also, you may want to use some internal indices to evaluate the clustering solutions.