Virtual machine consolidation techniques provide ways to save energy and cost in cloud data centers. However, aggressive packing of virtual machines can cause performance degradation. Therefore, it is essential to strike a trade-off between energy and performance in data centers. Achieving this trade-off has been an active research area in recent years. In this paper, a host underload detection algorithm and a new VM selection and VM placement techniques are proposed to consolidate Virtual machines based on the growth potential of VMs. Growth potential is calculated based on the utilization history of VMs. The interdependence of VM selection and VM placement techniques are also studied in the proposed model. The proposed algorithms are evaluated on real- world PlanetLab workload on Cloudsim. The experimental evaluation shows that our proposed technique reduces Service Level Agreement Violation (SLAV) and energy consumption compared to the existing algorithms.